package org.mybaits.chapter1.dao;

import java.util.List;

import org.mybaits.chapter1.entitys.User;


/**
 * 
 *@Description: 
 *@author huangkai
 *@date 2016年12月9日 下午10:49:31
 *@version V1.0.0
 */
public interface UserDao {
	
	/**
	 * 根据id查询用户
	 * @param id
	 * @return
	 * @throws Exception
	 */
	User getById(Long id) throws Exception ;
	
	/**
	 * 根据用户名模糊查询用户
	 * @param username
	 * @return
	 * @throws Exception
	 */
	List<User> getByUsername(String username)throws Exception;
	
	/**
	 * 保存一个用户
	 * @param user
	 * @return 受影响的行数
	 * @throws Exception
	 */
	int insert(User user) throws Exception;
	
	/**
	 * 数据库中使用主键自动增长时，保存返回的对象中包括自增长的主键
	 * 如果保存成功，返回用户，不成功返回 null.
	 * @param user
	 * @return
	 * @throws Exception
	 */
	User insertReturnUser(User user)throws Exception ;
	
	/**
	 * 删除一个用户
	 * @param id
	 * @return 受影响的行数
	 * @throws Exception
	 */
	int deleteById(Long id) throws Exception ;
	
	/**
	 * 更新用户,更新的用户id 不能为空
	 * @param user
	 * @return
	 * @throws Exception
	 */
	int update(User user) throws Exception;

}
